﻿using System.Xml.Serialization;
using DC2010.Objects.Base;
using DC2010.Objects.Data;

namespace DC2010.Objects.Structures
{
    public class TileTeleportData : TileData
    {
        /// <summary>
        /// All posible items types in this game. Are acceptable by this teleporter?
        /// </summary>
        [XmlAttribute]
        public BaseObjectType TeleportableTypes { get; set; }

        /// <summary>
        /// Is this teleporter visible?
        /// </summary>
        [XmlAttribute]
        public bool IsVisible { get; set; }

        /// <summary>
        /// When entered to this teleporter it makes sound
        /// </summary>
        [XmlAttribute]
        public bool MakesSound { get; set; }

        /// <summary>
        /// Teleporter is blining...while is not here it is not active :)
        /// This can be used for some speed runs.
        /// </summary>
        [XmlAttribute]
        public bool IsBlinking { get; set; }

        /// <summary>
        /// This telepporter actually teleports. It can be disabled using this property.
        /// </summary>
        [XmlAttribute]
        public bool IsEnabled { get; set; }

        /// <summary>
        /// How long is teleportter on, if blinking
        /// </summary>
        [XmlAttribute]
        public int Blink_DurationOn { get; set; }

        /// <summary>
        /// How long is teleportter off, if blinking
        /// </summary>
        [XmlAttribute]
        public int Blink_DurationOff { get; set; }

        /// <summary>
        /// How many times was teleporter on, if blinking
        /// </summary>
        [XmlAttribute]
        public int Blink_Counter { get; set; }

        /// <summary>
        /// Target in dungeon
        /// </summary>
        public DungeonLoc Target { get; set; }

    }
}
